package com.example.graduation.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.graduation.entity.Evaluate;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author xyc
 * @since 2022-02-11
 */
public interface EvaluateService extends IService<Evaluate> {

    /**
     * 分页查询所有的评论列表
     *
     * @param token
     * @param page
     * @param size
     * @return
     */
    public Page<Evaluate> findAllEvaluate(String token, Integer page, Integer size);


    /**
     * 查询已经完成或者没有完成评论的评论列表
     *
     * @param token
     * @param status
     * @param page
     * @param size
     * @return
     */
    public Page<Evaluate> findDownEvaluate(String token, Integer status, Integer page, Integer size);


    /**
     * 查看本评论的内容（本评论为已评）
     *
     * @param id
     * @return
     */
    public Evaluate findEvaluate(Integer id);


    /**
     * 对商品进行评价
     *
     * @param id
     * @param orderId
     * @param content
     * @param type
     * @param title
     * @return
     */
    public Evaluate downEvaluate(Integer id, String orderId, String content, Integer type, String title, String token);


    /**
     * 根据评论id删除评论
     *
     * @param id
     * @return
     */
    public Boolean deleteEvaluate(Integer id);


    /**
     * 查看商店被评论列表
     *
     * @param shopId
     * @return
     */
    public Page<Evaluate> findShopEvaluate(Integer shopId, Integer page, Integer size);


    /**
     * 商家回复评论
     *
     * @param evaluate
     * @param token
     * @return
     */
    public Evaluate replyEvaluate(Evaluate evaluate, String token);

}
